import { debounce } from 'lodash-es';
import { ElMessage } from 'element-plus';

// 静态类：无法实例化，所有方法通过类名直接调用
export class ErrorUtils {
    // 私有构造函数：防止通过 new ErrorUtils() 实例化

    // 静态私有方法：防抖处理的错误提示（仅类内部使用）
    private static showError = debounce((errorMessage: string) => {
        ElMessage.error(errorMessage);
    }, 1000);

    // 静态公共方法：对外暴露的错误处理入口
    static handleError(error: any): void {
        let errorMessage = '发生未知错误，请稍后重试';
        if (typeof error === 'string') {
            errorMessage = error;
        } else if (typeof error === 'object' && error.message) { // 增强对象类型判断
            errorMessage = error.message;
        }
        console.error(error);
        ErrorUtils.showError(errorMessage); // 调用静态私有方法
    }
}
